<?php
//声明命名空间
namespace app\admin\controller;


//导入类
use think\Controller;
use think\Db;

//声明控制器
class Index extends Controller
{
    public function index()
    {
        /**
         url地址生成
         完整写法：模块/控制器/操作
         echo url('login');
         */
        
         // echo json_encode($stu);
         // echo json_encode($student);
         // echo config('view_replace_str.__STATIC__');
         // die;

         //调用模板
         return $this->fetch();
    }
    public function add(
    {

    }
    public function edit()
    {

    }
    public function login()
    {

        return $this->fetch('login');
    }

    //机器人回复
    public function jqr()
    {
        //定义url链接操作
        // $url = "http://www.tuling123.com/openapi/api?key=3baa317b68274d94a002febdbe9d1eb3&info=你漂亮么";
        $url = "http://www.xiaodoubi.com/bot/api.php?chat=你好";
        //模拟发送http中的get请求
        $str = file_get_contents($url);
        //格式化json字符串为对象或数组
        $json = json_decode($str);
        print_r($json);
    }

    //百度位置
    public function wz()
    {

        // echo "66666";
        $url = "http://api.map.baidu.com/telematics/v3/geocoding?keyWord=北京市上地十街十号百度大厦&cityName=131&out_coord_type=gcj02&ak=E4805d16520de693a3fe707cdc962045";
        $str = file_get_contents($url);
        $json = json_decode($str,true);
        print_r($json);
    }

    //天气
    public function tq()
    {
        $city_name="南宁市";    //城市名
        $output="json";     //返回数据格式
        $ak="uCL7MFsAEWXjSDNHSTEwXBF6ofKdkSXQ";   //百度ak
        $url = "http://api.map.baidu.com/telematics/v3/weather?location=$city_name&output=json&ak=$ak";     //获取数据的请求地址
            
        $result = json_decode(getData($url),true);
        
        echo "<pre>";
        echo "天气预报信息<br/>";
        print_r($result);
        echo "<br/>天气预报信息";
        exit;

    }
    public function getData($url){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $result = curl_exec($ch);
        curl_close($ch);
        return $result;
    }

	public function muban()
	{
		//拆查询数据 - 去掉表前缀  3
    	$list = Db::name('data')
    	->where('id','>=',50)
    	->select();
    	// dump($list);
    	// exit();

		//模板变量赋值
		$this->assign('name','<h1>^_^</h1>Rinuo');
		$this->assign('email','2350768356@qq.com');
		//或者批量赋值
		// $this->assign([
		// 	'name' => 'rinuo',
		// 	'email' => '2350768356@qq.com'
	
		//数组赋值
		$data['name'] = 'data_name';
		$data['email'] = 'date_2350768356@qq.com';

		$this->assign('data',$data);
		$this->assign('list',$list);

		//模板输出 - 指定模板文件名
		// return $this->fetch('muban');
		//模板输出 - 使用默认控制器的名字
		//return $this->fetch();
		return $this->fetch('muban');
	}

   

    public function xiaolian()
    {
        echo '<style type="text/css">*{ padding: 0; margin: 0; } .think_default_text{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><div style="padding: 24px 48px;"> <h1>:)</h1><p> ThinkPHP V5<br/><span style="font-size:30px">十年磨一剑 - 为API开发设计的高性能框架</span></p>';
        //插入记录 原生写法
        $result = Db::execute('insert into think_data (name,status) values ("thinkphp1^_^",1)');  
    	dump($result);

    	//插入记录 - 用TP5的查询构造器方法
    	Db::table('think_data')->insert(['name'=>'thinkphp2^_^','status'=>1]);

    	//插入记录 - 去掉表前缀
    	Db::name('data')->insert(['name'=>'thinkphp3^_^']);


    	//插入记录 - 更加简单的写法
    	$db = db('data');
    	//插入记录
    	$result1 = $db->insertGetId(['name'=>'thinkphp4']);
    	dump($result1);//添加数据后如果需要返回新增数据的自增主键，可以使用getLastInsID方法或者直接使用insertGetId方法新增数据并返回主键值：

    	//插入记录 - 返回ID的方法
    	$data = ['name' => 'thinkphp5'];
    	$result2 = Db::name('data')->insertGetId($data);
    	dump($result2);

    	//插入记录 - 插入多条的方法
    	$data = [
    		['name' => 'thinkphp6-1'],
    		['name' => 'thinkphp6-2'],
    		['title' => '标题'],
    		['name' => 'thinkphp6-3']
    	];

    	$result3 = $db->insertAll($data);
    	dump($result3);//insertAll 方法添加数据成功返回添加成功的条数

    }

    public function select()
    {
    	echo "查询数据";
    	//查询数据 - 原生写法 1
    	$result = Db::query('select * from think_data where id = 5');
    	dump($result);//Db::query()遍历输出结果集：

    	//查询数据 - 用TP5的查询构造器方法  2
    	$list = Db::table('think_data')
    	->where('id',18)
    	->select();
    	dump($list);

    	//拆查询数据 - 去掉表前缀  3
    	$list = Db::name('data')
    	->where('id',20)
    	->select();
    	dump($list);

    	//查询数据 - 更加简化的写法 通过助手db函数 4
    	$db = db('data');
    	$list = $db->where('id',22)->select();
    	dump($list);

    }

    public function insert(){
    	echo "插入数据";
   
    	//插入记录 - 用原生写法 - 优点：直接用sql语句
    	$result = Db::execute('insert into think_data (name,status) values ("thinkphp1^_^",1)');  //Db::execute执行预处理语句
    	dump($result);

    	//插入记录 - 用TP5的查询构造器方法
    	Db::table('think_data')->insert(['name'=>'thinkphp2^_^','status'=>1]);

    	//插入记录 - 去掉表前缀
    	Db::name('data')->insert(['name'=>'thinkphp3^_^']);

    	//插入记录 - 更加简单的写法
    	$db = db('data');
    	//插入记录
    	$result1 = $db->insertGetId(['name'=>'thinkphp4^_^']);
    	dump($result);//添加数据后如果需要返回新增数据的自增主键，可以使用getLastInsID方法或者直接使用insertGetId方法新增数据并返回主键值：


    	//插入记录 - 返回ID的方法
    	$data = ['name' => 'thinkphp5'];
    	$result2 = Db::name('data')->insertGetId($data);
    	dump($result2);

    	//插入记录 - 插入多条的方法
    	$data = [
    		['name' => 'thinkphp6-1'],
    		['name' => 'thinkphp6-2'],
    		['name' => 'thinkphp6-3']
    	];

    	$result3 = $db->insertAll($data);
    	dump($result3);//insertAll 方法添加数据成功返回添加成功的条数
    }

    public function delete()
    {
    	echo "删除数据";

    	//删除数据 - 原生写法 1
    	$result = Db::execute("delete from think_data where id = 5");
    	dump($result);

    	//删除数据 - 用TP5的查询构造器方法 2
    	Db::table('think_data')
    	->where('id',18)
    	->delete();

    	//删除数据 - 去掉表前缀 3
    	Db::name('data')
    	->where('id',18)
    	->delete();

    	//删除数据 - 更加简化的写法 通过助手db函数 4
    	$db = db('data');
    	$db->where('id','<',2)->delete();

    	//删除数据 - 根据主键删除 精简写法 5
    	db('data')->delete(1);
    	db('data')->delete([1,8,3]);
    }

    public function update(){
    	echo "<h1>更新数据<h1>";
    	//更新记录 - 原生写法 1
    	$result = Db::execute('update think_data set name = "5^_^" where id <= 5');
    	dump($result);

    	//更新记录 - 用TP5的查询构造器方法 2
    	Db::table('think_data')
    	->where('id',18)
    	->update(['name'=>"18^_^"]);

    	//更新记录 - 去掉表前缀 3
    	Db::name('data')
    	->where('id',16)
    	->update(['name'=>"16^_^"]);

    	//更新记录 - 更加简化的写法 通过助手db函数 4
    	$db = db('data');
    	$db->where('id',20)->update(['name'=>"20^_^",'title'=>"我改变文章标题!"]);
    }

    public function hello($name = 'word')
    {
    	echo 'hello,'.$name.'!你的文章发布成功';

    	//插入记录 - 去掉表前缀
    	// Db::name('data')->insert(['name'=>$name]);

    	//删除数据 - 去掉表前缀 3
    	Db::name('data')
    	->where('name',$name)
    	->delete();
    }

    public function hello3($name = 'Word',$ctiy = '')
    {
    	return 'hello,'.$name.'! You come from'.$ctiy.'.';
    }
}
